package com.cloud.api.domain.model;

import com.cloud.api.utils.ExcelUtils;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

@Data
@ExcelUtils.ExcelSheet(watermark = @ExcelUtils.Watermark(type = 0)
)
@Schema(description = "新能源车基本信息导出表")
public class EvInformationExcel {

    @Schema(description = "品牌名称")
    @ExcelUtils.ExcelExport(name = "table.field.brandName")
    private String brandName;

    @Schema(description = "车系名称")
    @ExcelUtils.ExcelExport(name = "table.field.seriesName")
    private String seriesName;

    @Schema(description = "车型名称")
    @ExcelUtils.ExcelExport(name = "table.field.modelName")
    private String modelName;

    @Schema(description = "公告型号")
    @ExcelUtils.ExcelExport(name = "table.field.noticeModel")
    private String noticeModel;

    @Schema(description = "版本图片")
    @ExcelUtils.ExcelExport(name = "table.field.pictureUrl")
    private String pictureUrl;

    @Schema(description = "车辆属性")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleAttribute")
    private String vehicleAttribute;

    @Schema(description = "外廓尺寸长*宽*高（mm）")
    @ExcelUtils.ExcelExport(name = "table.field.outerDimensions",columnWidth = 19)
    private String outerDimensions;

    @Schema(description = "颜色")
    @ExcelUtils.ExcelExport(name = "table.field.colour")
    private String colour;

    @Schema(description = "总质量")
    @ExcelUtils.ExcelExport(name = "table.field.totalMass")
    private String totalMass;

    @Schema(description = "整备质量")
    @ExcelUtils.ExcelExport(name = "table.field.curbMass")
    private String curbMass;

    @Schema(description = "动力方式")
    @ExcelUtils.ExcelExport(name = "table.field.powerMode",kvs = {
            @ExcelUtils.KV(k="1",v="油电混合车"),
            @ExcelUtils.KV(k="2",v="纯电动"),
            @ExcelUtils.KV(k="3",v="插电式混动"),
            @ExcelUtils.KV(k="4",v="增程式"),
            @ExcelUtils.KV(k="5",v="燃料电池")
    })
    private Integer powerMode;

    @Schema(description = "电池类型")
    @ExcelUtils.ExcelExport(name = "table.field.batteryType",kvs = {
            @ExcelUtils.KV(k="1",v="三元锂"),
            @ExcelUtils.KV(k="2",v="磷酸铁锂"),
            @ExcelUtils.KV(k="3",v="镍钴锰酸锂"),
            @ExcelUtils.KV(k="4",v="镍钴锰三元锂")
    })
    private Integer batteryType;

    @Schema(description = "驱动电机额定转矩（N.m）")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorRatedTorque",columnWidth = 26)
    private String driveMotorRatedTorque;

    @Schema(description = "驱动电机额定功率")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorRatedPower",columnWidth = 21)
    private String driveMotorRatedPower;

    @Schema(description = "驱动电机冷却方式")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorCoolMethod",kvs = {
            @ExcelUtils.KV(k="1",v="自然冷却"),
            @ExcelUtils.KV(k="2",v="强迫冷却"),
            @ExcelUtils.KV(k="3",v="风-风冷"),
            @ExcelUtils.KV(k="4",v="风-水冷"),
            @ExcelUtils.KV(k="5",v="水冷"),
            @ExcelUtils.KV(k="6",v="液冷"),
            @ExcelUtils.KV(k="7",v="其他")
    },columnWidth = 20)
    private Integer driveMotorCoolMethod;

    @Schema(description = "驱动电机安装数量")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorInstallCount",columnWidth = 20)
    private String driveMotorInstallCount;

    @Schema(description = "驱动电机额定转速（r/min）")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorRatedSpeed",columnWidth = 26)
    private String driveMotorRatedSpeed;

    @Schema(description = "驱动电机布置形式/位置")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorDecorate",kvs = {
            @ExcelUtils.KV(k="1",v="横置/后置"),
            @ExcelUtils.KV(k="2",v="横置/前置"),
            @ExcelUtils.KV(k="3",v="纵置/后置"),
            @ExcelUtils.KV(k="4",v="纵置/前置"),
            @ExcelUtils.KV(k="5",v="横置/中置"),
            @ExcelUtils.KV(k="6",v="纵置/中置")
    },columnWidth = 20)
    private Integer driveMotorDecorate;

    @Schema(description = "整车供电电压（V）")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleSupplyVoltage",columnWidth = 21)
    private String vehicleSupplyVoltage;

    @Schema(description = "续航里程（km）")
    @ExcelUtils.ExcelExport(name = "table.field.mileage")
    private String mileage;

    @Schema(description = "最高车速（km/h）")
    @ExcelUtils.ExcelExport(name = "table.field.maxSpeed")
    private String maxSpeed;

    @Schema(description = "车辆级别")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleLevel",kvs = {
            @ExcelUtils.KV(k="1",v="A级车"),
            @ExcelUtils.KV(k="2",v="B级车"),
            @ExcelUtils.KV(k="3",v="C级车")
    })
    private Integer vehicleLevel;

    @Schema(description = "通信协议")
    @ExcelUtils.ExcelExport(name = "table.field.communicationProtocol",kvs = {
            @ExcelUtils.KV(k="1",v="32960"),
            @ExcelUtils.KV(k="2",v="17691")
    },columnWidth = 21)
    private Integer communicationProtocol;

    @Schema(description = "百公里加速（s）")
    @ExcelUtils.ExcelExport(name = "table.field.hundredAccelerate",columnWidth = 16)
    private String hundredAccelerate;

    @Schema(description = "百公里耗电量（kWh/100km）")
    @ExcelUtils.ExcelExport(name = "table.field.hundredPowerConsumption",columnWidth = 35)
    private String hundredPowerConsumption;

    @Schema(description = "电池系统能量密度（Wh/kg）")
    @ExcelUtils.ExcelExport(name = "table.field.batterySystemEnergyDensity",columnWidth = 31)
    private String batterySystemEnergyDensity;

    @Schema(description = "驱动电机峰值功率（kW）")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorPeakPower",columnWidth = 24)
    private String driveMotorPeakPower;

    @Schema(description = "峰值转速（min）")
    @ExcelUtils.ExcelExport(name = "table.field.peakSpeed")
    private String peakSpeed;

    @Schema(description = "吨百公里耗油量（kwh）")
    @ExcelUtils.ExcelExport(name = "table.field.tonHundredFuelConsumption",columnWidth = 30)
    private String tonHundredFuelConsumption;

    @Schema(description = "峰值转矩（N.m）")
    @ExcelUtils.ExcelExport(name = "table.field.peakTorque",columnWidth = 16)
    private String peakTorque;

    @Schema(description = "底盘生产商")
    @ExcelUtils.ExcelExport(name = "table.field.chassisManufacturer",columnWidth = 19)
    private String chassisManufacturer;

    @Schema(description = "底盘型号")
    @ExcelUtils.ExcelExport(name = "table.field.chassisModel")
    private String chassisModel;

    @Schema(description = "TBOX厂商")
    @ExcelUtils.ExcelExport(name = "table.field.tboxManufacturer")
    private String tboxManufacturer;

    @Schema(description = "TBOX型号")
    @ExcelUtils.ExcelExport(name = "table.field.tboxModel")
    private String tboxModel;

    @Schema(description = "驱动电机型号")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorModel",columnWidth = 16)
    private String driveMotorModel;

    @Schema(description = "驱动电机厂商")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorManufacturer",columnWidth = 22)
    private String driveMotorManufacturer;

    @Schema(description = "车载能源管理系统厂商")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleEnergySystemManufacturer",columnWidth = 30)
    private String vehicleEnergySystemManufacturer;

    @Schema(description = "车载能源管理系统型号")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleEnergySystemModel",columnWidth = 26)
    private String vehicleEnergySystemModel;

    @Schema(description = "驱动电机控制器制造商")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorControllerManufacturer",columnWidth = 30)
    private String driveMotorControllerManufacturer;

    @Schema(description = "驱动电机控制器型号")
    @ExcelUtils.ExcelExport(name = "table.field.driveMotorControllerModel",columnWidth = 25)
    private String driveMotorControllerModel;

    @Schema(description = "整车控制器厂商")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleControllerManufacturer",columnWidth = 26)
    private String vehicleControllerManufacturer;

    @Schema(description = "整车控制器型号")
    @ExcelUtils.ExcelExport(name = "table.field.vehicleControllerModel",columnWidth = 21)
    private String vehicleControllerModel;

    @Schema(description = "电池型号")
    @ExcelUtils.ExcelExport(name = "table.field.batteryModel")
    private String batteryModel;

    @Schema(description = "电池质保时间")
    @ExcelUtils.ExcelExport(name = "table.field.batteryWarrantyTime",columnWidth = 19)
    private String batteryWarrantyTime;

    @Schema(description = "储能装置型号")
    @ExcelUtils.ExcelExport(name = "table.field.energyDeviceType",columnWidth = 20)
    private String energyDeviceType;

    @Schema(description = "单体数量（个）")
    @ExcelUtils.ExcelExport(name = "table.field.monomerNumber",columnWidth = 21)
    private String monomerNumber;

    @Schema(description = "储能装置额定（标称）电压（V）")
    @ExcelUtils.ExcelExport(name = "table.field.energyDeviceRatedVoltage",columnWidth = 27)
    private String energyDeviceRatedVoltage;

    @Schema(description = "产品组合形式")
    @ExcelUtils.ExcelExport(name = "table.field.productCombiningForm",columnWidth = 21)
    private String productCombiningForm;

    @Schema(description = "储能装置生产企业")
    @ExcelUtils.ExcelExport(name = "table.field.energyDeviceProductionEnterprise",columnWidth = 30)
    private String energyDeviceProductionEnterprise;

    @Schema(description = "额定容量（Ah）")
    @ExcelUtils.ExcelExport(name = "table.field.ratedCapacity",columnWidth = 16)
    private String ratedCapacity;

    @Schema(description = "充电循环次数（次）")
    @ExcelUtils.ExcelExport(name = "table.field.chargeCycleNum",columnWidth = 21)
    private String chargeCycleNum;

    @Schema(description = "总储电量（Kwh）")
    @ExcelUtils.ExcelExport(name = "table.field.energyStorage",columnWidth = 18)
    private String energyStorage;

    @Schema(description = "储能装置额定（标称）容量（Ah）")
    @ExcelUtils.ExcelExport(name = "table.field.energyDeviceRatedCapacity",columnWidth = 28)
    private String energyDeviceRatedCapacity;
}
